package epucjr.psicopuc.dominio;


import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;

import org.hibernate.annotations.ForeignKey;
import org.hibernate.search.annotations.ContainedIn;
import org.hibernate.search.annotations.DocumentId;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Indexed;


@Entity
@Indexed
public class Endereco {
	
	
	/************************
	 * ATRIBUTOS
	 ***********************/
	


	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@DocumentId
	private long idEndereco;
	@Field
	private String rua; 
	private int	numero;
	@Field
	private String	cidade;
	@Field
	private String	estado;
	@Field
	private String	bairro;
	private String complemento;
	private String	cep;
	private String pais;
	
	
	@ContainedIn
	@OneToOne(mappedBy="endereco")
	@ForeignKey(name="FK_CANDIDATO")
	private Candidato candidato;
	
	
	
	/************************
	 * CONSTRUTOR
	 ***********************/
	
	public Endereco() {
		this.rua = "";
		this.numero = 0;
		this.cidade = "";
		this.estado = "";
		this.bairro = "";
		this.cep = "";
		this.complemento = "";
		this.pais = "";
	}
	
	public Endereco(String rua, int numero, String cidade, String estado,
			String bairro, String cep, String complemento, String pais) {
		this.rua = rua;
		this.numero = numero;
		this.cidade = cidade;
		this.estado = estado;
		this.bairro = bairro;
		this.cep = cep;
		this.complemento = complemento;
		this.pais = pais;
	}
	
	
	
	/************************
	 * GETTERS/SETTERS
	 ***********************/
	
	
	public String getRua() {
		return rua;
	}
	public void setRua(String rua) {
		this.rua = rua;
	}
	public int getNumero() {
		return numero;
	}
	public void setNumero(int numero) {
		this.numero = numero;
	}
	public String getCidade() {
		return cidade;
	}
	public void setCidade(String cidade) {
		this.cidade = cidade;
	}
	public String getEstado() {
		return estado;
	}
	public void setEstado(String estado) {
		this.estado = estado;
	}
	public String getBairro() {
		return bairro;
	}
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}
	public String getCep() {
		return cep;
	}
	public void setCep(String cep) {
		this.cep = cep;
	}
	public long getIdEndereco() {
		return idEndereco;
	}	

	public void setCandidato(Candidato candidato) {
		this.candidato = candidato;
	}

	public Candidato getCandidato() {
		return candidato;
	}

	public String getComplemento() {
		return complemento;
	}

	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}

	public String getPais() {
		return pais;
	}

	public void setPais(String pais) {
		this.pais = pais;
	}

	
}
